
import java.util.*;
public class Main{
    private static long num=1;
    private static long numArr[];

    private static void initArr(){
        numArr=new long[21];
        numArr[0]=1;
        for(int i=1;i<21;i++){
            numArr[i]=numArr[i-1]*i;
        }
    }

    private static long CaculateCom(int subNum,int n){
        return numArr[n]/(numArr[n-subNum]*numArr[subNum]);
    }

    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        initArr();
        while(scanner.hasNext()){
            int n=scanner.nextInt();
            String preOrder=scanner.next();
            String postOrder=scanner.next();
            num=1;
            CaculateTree(n,preOrder,postOrder);
            System.out.println(num);
        }
    }

    private static void CaculateTree(int n,String preOrder,String postOrder){
        int len=preOrder.length();
        if(len==1){
            return;
        }
        int count=0;
        preOrder=preOrder.substring(1);
        postOrder=postOrder.substring(0,len-1);
        while(!"".equals(preOrder)){
            int index=postOrder.indexOf(preOrder.charAt(0))+1;
            String newPre=preOrder.substring(0,index);
            String newPost=postOrder.substring(0,index);
            preOrder=preOrder.substring(index);
            postOrder=postOrder.substring(index);
            count++;
            CaculateTree(n,newPre,newPost);
        }
        num*=CaculateCom(count,n);
    }

}

















//public class Main {
//    public static void main(String[] args) {
//        Scanner scanner=new Scanner(System.in);
//        while (scanner.hasNext()){
//            String str=scanner.nextLine();
//            String name=scanner.nextLine();
//            char[] ch=str.toCharArray();
//            int flag=0;
//            List<String> list=new ArrayList<>();
//            String ret="";
//            for(int i=0;i<ch.length;i++){
//                if(flag==0&&ch[i]=='"'){
//                    flag=1;
//                    list.add(ret);
//                    ret="";
//                }else if(flag==1&&ch[i]=='"'){
//                    flag=0;
//                    list.add(ret);
//                    ret="";
//                }else if(flag==1){
//                    ret+=ch[i];
//                }else if(flag==0&&ch[i]!=','){
//                    ret+=ch[i];
//                }
//            }
//            list.add(ret);
//            if(list.contains(name)){
//                System.out.println("Ignore");
//            }else{
//                System.out.println("Important");
//            }
//        }
//    }
//}













//public class Main {
//    public static void main(String[] args) {
//        Scanner scanner=new Scanner(System.in);
//        while (scanner.hasNext()){
//            int n=scanner.nextInt();
//            double ret=(getCount(n)/get(n))*100;
//            System.out.printf("%.2f",ret);
//            System.out.println("%");
//        }
//    }
//    public static double getCount(double n){
//        if(n==1){
//            return 0;
//        }
//        if(n==2){
//            return 1;
//        }else{
//            return (n-1)*(getCount(n-1)+getCount(n-2));
//        }
//    }
//    public static double get(double n){
//        if(n==0){
//            return 1;
//        }else{
//            return n*get(n-1);
//        }
//    }
//}
